初心者向け!プログラミングコンテストもくもく会参加レポート
こんにちは、Mr.Moです。
世間では絶賛三連休中ですが、皆様いかがお過ごしでしょうか? せっかくの休みなので新しいことに挑戦してみようということで、プログラミングコンテストを題材にしたもくもく会に参加してきました。
プログラミングコンテストとは
プログラミングコンテストとは、コンピュータプログラミングの能力や技術を競い合うコンテストである。アルゴリズムなどに関する問題をコンピュータサイエンスや数学に関係する問題を解く早さを競うもの、ソフトウェアやネットワークのセキュリティ上の問題点を見つけることを競うもの、ソースコードの文字数(バイト数)の小ささを競うもの、人工知能(AI)を作って競うもの、作品(ソフトウェア)の評価を競うもの、など様々なコンテストが存在する。
https://ja.wikipedia.org/wiki/プログラミングコンテスト
もくもく会の内容
https://mokumokustudy.connpass.com/event/113352/
競プロ/プロコンを題材に思考力を養うことを主な目的として開催します(主催者はガチ勢でなくどちらかというと初心者のため難しいことはわからないかもしれません)。 過去または現在開催中の競技プログラミング/プログラミングコンテストの問題を各自もくもく解いた後、相互にレビューして理解を深めます。
今回、第1回目開催とのことでまずはプログラミングコンテスト(以下プロコンと略す)ってなんじゃらほいを体験すべく、参加者全員でAtCoderの初心者コースをやっていきます。 いったん2時間で各自でもくもくと問題を解いてその後に皆で相互レビューして理解を深める流れです。
AtCoderとは
AtCoderは、オンラインで参加できるプログラミングコンテストのサイトです。リアルタイムのコンテストで競い合ったり、約2000問のコンテストの過去問にいつでも挑戦することが出来ます。
ちなみに、定期的に開催されているコンテストに参加して上位に入賞すると賞金が貰えたりするみたいですね!
初心者コース(AtCoder Beginners Selection)
このコンテストは、「AtCoderに登録したけど何をしていいか分からない・・・!」という人に向けて作られた、初心者向け問題集です。
https://atcoder.jp/contests/abs
さっそくガチのコンテストに参加して賞金も狙っていきたいところですがプロコンはそんなに甘い世界でもないことは体験済みだったりするので、はやる気持ちを抑えて少しずつステップアップしていきます。 今回は初心者コースとして用意されている10問を解いていきます。
果たして結果は?。。
自分は2時間で「Some Sums」の問題(だいたい全体の半分ぐらい)までしか時間内に解けませんでした(笑) 10問目まで到達された方もいたので解説をしていただいて理解を深めました。自宅でお一人でもできるAtCoderですが、勉強会で皆で集まって行うと最後に知見を共有しあえるのが良いですね。
問題を解くスピードを改善する必要があることが分かりましたが、難易度的には時間があれば解けるレベルの内容になっているので初心者でも楽しんで進めることができるコースだと感じました。
ちなみに実はプロコンもくもく会は第0回を開催しており、前回は下記のコンテスト「Tenka1 Programmer Beginner Contest」、「Tenka1 Programmer Contest」に挑みましたが。。
https://tenka1-2018-beginner.contest.atcoder.jp/ https://tenka1-2018.contest.atcoder.jp/
Beginnerのコンテストの方ですら後半の問題は中々難しいと感じるものでした(自分はやっと3問目までという感じで。。)
まとめ
中々解けなかった問題を正解にできた瞬間は気持ちが良いですね。 主催のモデレーターいわく「技術者として今後AIなどに仕事を奪われず長くやっていくことを考えると、限られた時間内で問題を解く思考力を養うことは非常に大事」との思いがあるとのことで、たしかに普段の業務で触れている技術的なことは使い方は上達するものの新しい技術がでた時にはまた最初からやり直しと感じることがあります。 根本の思考力を底上げして、どんな市場の状態であっても通用するエンジニアを目指したいものです。
まだまだ序盤ではありますが、プロコンの雰囲気少し伝わりましたでしょうか? 是非次回の「もくもくプロコン勉強会」にも参加してみてください!